Energy efficient supercomputer job allocation

ABSTRACT

A technique for defragmenting jobs on processor-based computing resources including: (i) determining a first defragmentation condition, which first defragmentation condition will be determined to exist when it is favorable under a first energy consideration to defragment the allocation of jobs as among a set of processor-based computing resources of a supercomputer (for example, a compute-card-based supercomputer); and (ii) on condition that the first defragmentation condition exists, defragmenting the jobs on the set of processor-based computing resources.

BACKGROUND

The present invention relates generally to the field of “job” (seeDefinition in Definitions sub-section, below) allocation over a set of“processor-based computing resources” (see Definition in Definitionssub-section, below), and more particularly to job allocation whereperformance of the jobs requires and/or produces energy (for example,electrical energy, thermal energy).

Some conventional supercomputers are built up from a single fundamentalcomputing resource unit, called the compute card (sometimes hereinreferred to as compute-card-based supercomputers). In some conventionalcompute-card-based supercomputers, compute nodes are packaged two percompute card, with 16 compute cards plus up to 2 I/O (input/output)nodes per node board.

In some compute-card-based supercomputers, compute cards are thengrouped together, 32 per node board to form midplanes, with eachmidplane having 16 node boards. Two midplanes a rack provide 1024compute cards with a total of 16384 cores. Most supercomputers supportcompute jobs of varying sizes (number of compute nodes) and varyingduration. This often results in “fragmentation in the processor-basedcomputing resources” over time. “Fragmentation in the processor-basedcomputing resources” means a job becomes sub-divided into smaller andsmaller “job fragments” (see definition, below), which generally areintermingled throughout the set of processor-based computing resourceswith job fragments from other jobs.

SUMMARY

According to an aspect of the present invention, there is a method,computer program product and/or system that performs the following steps(not necessarily in the following order): (i) computing, by jobpredicting machine logic, a first cost approximation associated withrunning a first job on a supercomputer, with the computation of thefirst cost approximation being performed under an assumption that nodefragmentation is performed prior to running the first job; (ii)computing, by the job predicting machine logic, a second costapproximation associated with running the first job on thesupercomputer, with the computation of the second cost approximationbeing performed under an assumption that defragmentation of a firstpartition of the supercomputer is performed prior to running the firstjob; and (iii) on condition that the first cost approximation is greaterthan the second cost approximation, performing defragmentation of thefirst partition. The first partition is a partition large enough to runthe first job.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a graph showing information that is generated by and/orhelpful in understanding embodiments of the present invention;

FIG. 2 is a graph showing information that is generated by and/orhelpful in understanding embodiments of the present invention;

FIG. 3 is a block diagram of a first embodiment of a supercomputersystem according to the present invention; and

FIG. 4 is a flow chart showing a first embodiment of a method accordingto the present invention.

DETAILED DESCRIPTION

Some methods according to the present invention perform the followingoperations: (i) determine a first defragmentation condition, which firstdefragmentation condition will be determined to exist when it isfavorable under a first “energy consideration” (see definition, below)to defragment the allocation of “jobs” (see definition, below) as amonga set of “processor-based computing resources” (see definition, below)of a supercomputer (for example, a compute-card-based supercomputer);and (ii) on condition that the first defragmentation condition exists,defragment the jobs on the set of processor-based computing resources.Some embodiments of the present invention may minimize energyconsumption.

Some embodiments of the present invention recognize the following facts,potential problems and/or potential areas for improvement with respectto the current state of the art: (i) in the case of a very highly usedmachine, fragmentation can prevent jobs from running purely becausethere is not a sufficiently sized contiguous block of compute resourcesavailable, even though the total amount of idle compute resources may belarger than what the job requires; and/or (ii) under conventionaltechnology, the issue of insufficiently sized contiguous blocks(mentioned in the previous item on this list) are handled by a techniquecalled machine defragmentation (specifically, jobs are “checkpointed”and restored in a new configuration on the machine to free largercontiguous blocks).

“Checkpointing” means that a set of data related to job performancestatus is collected and saved in a data set which is called a“snapshot.” The “snapshot” includes sufficient information to restartthe job so that little or no data processing progress is lost as betweenthe checkpointing and the restart of the job. In other words,checkpointing effectively inserts fault tolerance into a supercomputer.Checkpointing includes: (i) storing a snapshot of the currentapplication state; and (ii) later on, uses it for restarting theexecution. In this way, checkpointing and snapshotting can be used toimplement job defragmentation. As a general principle, moving jobsbetween machine partitions depends, at least to some degree, upon theuse of a storage medium to store and/or communicate between partitionsto transmit a job in a serialized, non-running state.

In some embodiments in accordance with the present invention, theprocess of job fragment consolidation involves the following steps: (i)jobs are paused in the source partition; (ii) memory states associatedwith jobs are serialized to a transmittable storage medium; (iii) memorystates are transmitted to the new destination partition; (iv) memory inthe destination partition is reconstructed from the serialized memorytransmission; and (v) the job is resumed on the new partition.

Energy minimizing job scheduling on a parallel resource will now bediscussed. Through a combination of intelligently placing compute jobson supercomputers and by the use of a checkpoint/restart mechanism foralready running compute jobs, a resource manager can pack tasks tomaximize contiguous areas of idle compute resources such that they canenter a low power state. The checkpoint/restart mechanism may not besupported on all compute workloads, but those that can write their stateout to some persistent data store. The saving of state is required sothat it may be read back in the future to enable computation to continueat the previously written out point can be checkpointed and thenrestarted on to another part of the computer. This allows the movementof compute jobs between different parts of the machine.

Some embodiments of the present invention provide a system and methodfor detecting when it is desirable from an energy standpoint todefragment the computing resource and subsequently perform thedefragmentation. From a high level perspective it is desirable todefragment when the following inequality holds:

[direct energy costs+the cost of lost cycles]<predicted energy savedfrom the action.

The costs of defragmenting the computing resource is the opportunitycost (the cost of lost cycles) and direct energy costs of performing theaction.

The opportunity cost is the delayed work progress associated with thecomputational time lost as a result of the checkpoint and restartprocess as this computational time will need to be made up at a laterpoint, resulting in an increase in total wall time for all relocatedcompute jobs.

The direct energy costs are those attributed to calculating when, what,and how to perform the checkpoint, the action of checkpointing, and theaction of restarting compute jobs that have been moved. It should benoted that serialization of a memory to a storage medium, transmission,and restoration to a new memory all make use of electricity incontemporary computers.

The predicted energy saved is calculated by the difference innon-productive power consumption in the compute system withoutdefragmentation compared with the predicted non-productive powerconsumption with defragmentation, multiplied by the expected runtime ofthe defragmented state, less the energy used to defragment.Non-productive power consumption is the power that is used by computeresources that are idle.

Predictive modeling of non-productive power consumption afterdefragmentation will now be discussed. A problem arises when predictinghow much non-productive power consumption after defragmentation can beeliminated by an earlier defragmentation and powering down ofnon-productive partitions. The associated cost savings is thereforeaffected by this problem as well. The problem derives from the originalproblem defragmentation was intended to address in the prior art, thatof freeing contiguous blocks so that larger jobs may run as soon aspossible. The assumption is that any owner of a parallel resource willmaintain this objective, independent of energy consumption, since theopportunity cost of not running a large job is high, and cost ofdefragmentation is sunk at the time of job submission.

Therefore, in the event that a larger job is submitted afterdefragmentation occurs, but before the predicted non-productive powerconsumption without defragmentation is recouped (i.e., in the event theexpected runtime of the predicted state, which includes powered downmachine partitions, is never achieved), the job will run and the energysavings of defragmentation will not be realized. Again, the cost ofdefragmentation must be recouped during the runtime of the predictedstate for an energy savings to occur, and if it is not, the new job willcause a net increase in energy cost as opposed to a savings.

To address this issue, use is made of a modeling component, whichrequires anticipated users of large blocks on the system to predicttheir job runtimes well in advance of the job being submitted. Theseusers are asked daily to update these anticipated runtimes, based on theprogress of their development efforts. The system makes use of these andother inputs, together with machine learning inference, to estimate theprobability that a job will run at a specific time. These inferredprobabilities are incorporated into the above inequality criterion forinitiating defragmentation, by calculating the predicted energy savedfrom the action using a dynamically updated predicted runtime of thedefragmented state. The system learns based on the objective ofaccurately predicting these runtimes, subject to a highly nonlinear costfunction, which attempts to minimize the risk that the cost ofdefragmentation is not recouped.

The modeling component may include the following machine learningelements: (i) active learning, in which a user is asked to providefeedback on the prediction made based on inference; (ii) continualupdates of the model based on user input and questionnaire submission;(iii) analysis of a user's set criteria for running a job such as codecompilation, data movement, time of day, etc.; (iii) inputs from theuser's calendar, including meeting schedule, time allocated todevelopment and experimentation, etc.; and (iv) crowd-sourced estimatesfrom the user's team and management, who may have insight into when aparticular job may run, or how productive a user is currently inachieving a set target for job submission.

As shown in FIG. 1, graph 100 shows midplanes processing by showing thenumber processing, by frequency. As shown in FIG. 2, graph 200 showspower used by booted, idle node boards to effectively show energy as afunction of frequency. Several methods, according to the presentinvention, will be discussed in the following paragraphs. In eachmethod, job allocation among and between the set of processor-basedcomputing resources of the supercomputer needs to be determined.

The first example method is the “move largest elements first Method,” asfollows: (i) identify free resources at each level; (ii) calculateprocessing value for each rack (in this example, the number ofprocessing compute cards); and (iii) perform the pseudo code set forthbelow:

FOR EACH resource type (largest first) {Midplane, Node board, Computecard}    IF the resource P is processing THEN      IF there is anidentified free resource F of this      type THEN         IF theresource F is located on a parent         resource that has a higherprocessing value than         the parent resource of P THEN          Record action to move the jobs on resource           P toresource F           Update processing value         END IF      END IF   END IF END FOR EACH

The second example method is called the “marginal energy cost method,”and is as follows: (i) the marginal energy cost, calculated on eachpredicted state between defragmentation intervals, is defined as thedifference in power consumption of a rack when a particular compute cardis processing compared to the power consumption of that rack if thatcompute card were not processing, multiplied by the length of thatstate; (ii) on condition that the predicted marginal energy saving isgreater than the predicted marginal energy cost of moving the resource:(a) move largest marginal energy users first, and (b) calculate themarginal energy cost of each compute card using the following pseudocode:

FOR EACH processing compute card P (in descending order of cost)    Movejobs from P to the lowest marginal energy cost    available compute cardEND FOR EACHIt is possible that it is more beneficial to free three compute cards onone node board than it is to free one compute card on another nodeboard, even if both free the entire node board. This is because thevalue of freeing a node board depends on whether freeing that node boardwill free a whole midplane of node boards, or make it more likely that amidplane of node boards will be able to be freed in the future.

According to a third example method, a packing algorithm is used tocalculate the optimal placement of each task within the super computerat each point in time. This is accomplished using a bin packingalgorithm, or other mathematical optimization technique, as implementedby one skilled in the art. This method may include the following steps:(i) calculate a power optimal placement of nodes using a bin-packingalgorithm; (ii) calculate the energy saved as the difference in energyusage multiplied by the expected time until next state change (orcalculate the energy saved as the difference in energy usage multipliedby the time until powered down partitions are restored to service alarge job); (iv) if the energy saved by the optimal placement of VMs—thecost of defragmenting the computing resource is greater than zero (0),perform the defragmentation.

Some embodiments of the present invention may include one, or more, ofthe following features, characteristics and/or advantages: (i) machinelogic that takes account of the estimated or known energy required tostore and retrieve a job from checkpoint; (ii) machine logic that takesaccount of the estimated or known runtime of a job; (iii) machine logicthat takes into account the different levels of power saving areachievable by shifting load to different parts of the machine; (iv)machine logic that takes into account communication network constraints;(v) machine logic that that uses MIP (mixed integer programming) tosolve the allocation problem.

Some embodiments of the present invention may include one, or more, ofthe following features, characteristics and/or advantages: (i) detectwhen it is energy efficient to relocate jobs in a supercomputer throughcheckpointing and restarting; (ii) checkpointing and restarting computejobs in a supercomputer, so as to maximize the number of computeresources that can be placed into a low power state; (iii) determinationof when it is energy efficient to checkpoint and restart compute jobs ina supercomputer so as to maximize the number of compute resources thatcan be placed into a low power state; (iv) exhaustive search is used todetermine the optimal placement of tasks on resources; (v) a bin packingalgorithm is used to determine the optimal placement of tasks onresources.

Another example embodiment of a system and method according to thepresent invention will now be discussed. This system, and associatedmethod, minimizes power consumed and maximizes available partition sizesavailable in a supercomputing facility by taking inputs from a jobpredicting component, scheduling machine defragmentation, and poweringdown unused partitions. This example method includes the followingoperations: (i) job predicting component (JPC) takes as input calendarentries from calendars of users of the supercomputing facilityspecifying users' expected run times for jobs of various sizes; (ii)system computes an expected time for a need for machine defragmentation(ETD), based solely on the projected unavailability (due to machinefragmentation) of a partition large enough for a job predicted by JPC;(iii) system computes a cost incurred for the expected delay of thelarge job if no defragmentation is performed (R); (iv) system computesthe maximum expected runtime RTD (i.e., maximum interval ending at ETD)for the machine in a defragmented state with free partitions Pn ofvarious sizes if machine defragmentation occurs prior to ETD, basedsolely on the projected submission of small jobs prior to ETD; (v)system computes the cost savings Q by subtracting the cost of powerrequired for defragmentation from the savings accrued by powering downPn over RTD; (vi) if Q>R, defragmentation is scheduled for time ETD-RTD,else no defragmentation occurs.

Some embodiments of the present invention may include one, or more, ofthe following features, characteristics and/or advantages: (i) a systemand method for performing energy efficient super computer allocation;(ii) in various embodiments, there are many algorithms one might applyto make the JPC optimal in its ability to predict when jobs will run;(iii) calendars as one of many possible inputs to the JPC; (iv) a novelset of steps, that results in power savings and cost of delayed jobsbeing balanced when one considers early defragmentation and poweringdown free partitions an option; and/or (v) coupling a power-awarescheduling method in a system where work must be scheduled to contiguouspartitioning, and the consequent checkpointing/restart process torelocate work to take advantage of that power-aware scheduling.

As shown in FIG. 3, supercomputer 400 includes: processor-basedcomputing resource set 350 (including processor-based computingresources 350 a to 350 z); and program 300. Program 300 includesdetermine distribution module (“mod,” see definition, below) 302;evaluation mod 304; and defrag mod 306. It should be understood thatprocessor-based computing resources set 350 includes storage and/ormemory resources that are subject to partitioning into smaller andsmaller logical segments. This partitioning will become relevant in thediscussion of FIG. 4, which shows flow chart 250 representing a method,according to the present invention, performed by program 300 onsupercomputer 400. This method will be described in detail in thefollowing paragraphs, with reference to FIGS. 3 and 4. Processing beginsat step S255, where a set of supercomputer “jobs” (see definition,below) are run on processor-based computing resources 350 a to 350 z. Inthis embodiment, this step is similar to the way that conventional jobsare run on conventional supercomputers.

Processing proceeds to step S260, where the jobs become fragmentedbetween and among processor-based computing resources 350 a to 350 z.The information about how job fragments are distributed between andamong the processor-based computing resources will herein sometimes bereferred to as the “fragmentation state” of the jobs over the resources.

Processing proceeds to step S263, where determine distribution mod 302determines the current fragmentation state of the jobs over theresources.

Processing proceeds to step S265, where evaluation mod 304 determineswhether a defragmentation condition exists as the system is in itscurrent fragmentation state. This defragmentation condition is based onan “energy consideration” (see definition, below). As explained above,in some embodiments, the energy consideration will be the possibility oflowering the power state (for example, turning off) certainprocessor-based computing resources and/or “partitions” made up ofprocessor-based computing resource(s).

At the time step S265 is performed by the machine logic (for example,software) of evaluation mod 304, the processor-based computing resourcesset has reached a fragmentation state that includes some relativelysmall number of partitions Pn on, among and between the computingresources. Running a large job while using the small partitions willtake extra time and energy, relative to running that same large job on asingle large partition. On the other hand, in order to create a largepartition, capable of running the large job without substantial use ofother partitions that may exist in the resource set, at least somedefragmentation must occur. This defragmentation, if undertaken, alsocosts in terms of time and energy—and these costs include not only adelay in starting the large job, but also disruption for smaller jobsbeing run on supercomputer 400. As will now be discussed in thefollowing paragraph(s), step S265 determines whether it is better to:(i) forego the defragmenting and associated creation of the largepartition for running the large job; or (ii) perform the defragmentationprior to running the large job.

Step S265 computes a first cost approximation associated with runningthe large job on supercomputer 400. This computation of the first costapproximation is performed under an assumption that no defragmentationis performed prior to running the first job, meaning that the large jobwill be run after relatively small partitions of the un-defragmentedpartition set Pn are freed by completion of small jobs running on thesepartitions. Step S265 further computes a second cost approximationassociated with running the large job on the supercomputer. Thiscomputation of the second cost approximation is performed under anassumption that defragmentation is performed to an extent that arelatively large partition is created in resource set 350 so that thelarge job can run at least substantially entirely using the relevantresources of the first partition. If the first cost approximation isgreater than the second cost approximation, then processing proceeds tostep S270 (further discussed, below). If the first cost approximation isless than the second cost approximation, then processing loops back tostep S255.

At step S265, the computation of the first cost approximation is based,at least in part, upon opportunity costs associated with delayingrunning the large job without defragmentation, and the computation ofthe second cost approximation is based, at least in part, upon powercosts associated with defragmentation and with running the first jobsubsequent to defragmentation of the large partition (sufficient forrunning the relatively large job).

Also at step S265, job predicting machine logic in evaluation mod 304receives calendar entries from calendar(s) of a set of user(s) of thesupercomputer. These received calendar entries include expected runtimes for jobs included in the calendar(s) of the set of user(s). Atstep S265, the computation of the first cost approximation is based, atleast in part, on the received calendar entries because these calendarentries can help determine the cost that not defragmenting will havewith respect to delay and/or disruption of the large job. Furthermore,with a projection of large job submission, an estimate may be made ofenergy savings accrued by the powering down of partitions freed by earlydefragmentation in anticipation of large job submission. Similarly, thecomputation of the second cost approximation is based, at least in part,on the received calendar entries because this helps provide anappropriate basis of comparison for comparing the first (defragmented)and second (undefragmented) cost approximations.

At step S265, evaluation mod 304 further computes an expected time for aneed for machine defragmentation, with the first expected time beingbased, at least in part, on a projected unavailability, due to machinefragmentation. In other words, defragmentation will occur in theresource set of supercomputer 400 at some point, even without regard todefragmentation which may be occasioned by the large job. It is helpfulto know this expected time for defragmentation, because it may rendersuperfluous and unnecessary the need to defragment especially for thelarge job. In particular, defragmentation is deemed unnecessary if theenergy cost of defragmenting exceeds the opportunity cost savings, plusany energy savings accrued by powering down unused partitions in thedefragmented machine. At step S265, evaluation mod 304 further computes:(i) a delay cost incurred for expected delay of the first job based, atleast in part, on the expected time for a need for machinedefragmentation; and (ii) a maximum expected runtime interval based uponthe following: (a) an assumption that the supercomputer is in adefragmented state with free partitions Pn of various sizes resultingfrom defragmentation that has been performed prior to the expected timefor a need for machine defragmentation; and (b) a projected submissionof a plurality of jobs (for example, jobs gleaned from calendar entriesof supercomputer users) prior to the expected time for a need formachine defragmentation. If the maximum expected runtime interval goesbeyond the expected time for a need for machine defragmentation, thenthe maximum expected runtime interval is decreased so that the maximumexpected runtime results in an interval that coincides with the expectedtime for a need for machine defragmentation. It should be noted that theexpected runtime interval is then simply an interval of time prior tothe need for machine defragmentation when certain defragmentedpartitions are free and available for powering down. The computation ofthe first cost approximation is based, at least in part, on a cost ofpower required for defragmentation, and the computation of the firstcost approximation is further based, at least in part, upon a costsavings realized by an assumption that the free partitions of varioussizes are powered down during the maximum expected runtime interval.

Processing proceeds to step S270, where defrag mod 306 defragments thejobs on the processor-based computing resources so that the jobs have anew fragmentation state. The new fragmentation state will usuallyinclude fewer, and larger, job fragments than the pre-defragmentationfragmentation state. In this embodiment, defragmentation is accomplishedspecifically by checkpointing and restarting, as discussed above. Inthis example, the defragmentation clears a first partition of any andall job fragments, as was previously contemplated when it was determinedthat the defragmentation condition was met by the currentdefragmentation state at step S265. This means that the first partitioncan be set into a low power state, as discussed above (although thisstep is not separately shown in the flow chart of FIG. 4).

After the defragmentation of step S270, processing loops back to the“normal operations” of step S255.

The following paragraphs set forth some definitions for certain words orterms for purposes of understanding and/or interpreting this document.

Present invention: should not be taken as an absolute indication thatthe subject matter described by the term “present invention” is coveredby either the claims as they are filed, or by the claims that mayeventually issue after patent prosecution; while the term “presentinvention” is used to help the reader to get a general feel for whichdisclosures herein are believed to potentially be new, thisunderstanding, as indicated by use of the term “present invention,” istentative and provisional and subject to change over the course ofpatent prosecution as relevant information is developed and as theclaims are potentially amended.

Embodiment: see definition of “present invention” above—similar cautionsapply to the term “embodiment.”

and/or: inclusive or; for example, A, B “and/or” C means that at leastone of A or B or C is true and applicable.

Module/Sub-Module: any set of hardware, firmware and/or software thatoperatively works to do some kind of function, without regard to whetherthe module is: (i) in a single local proximity; (ii) distributed over awide area; (iii) in a single proximity within a larger piece of softwarecode; (iv) located within a single piece of software code; (v) locatedin a single storage device, memory or medium; (vi) mechanicallyconnected; (vii) electrically connected; and/or (viii) connected in datacommunication.

Computer: any device with significant data processing and/or machinereadable instruction reading capabilities including, but not limited to:desktop computers, mainframe computers, laptop computers,field-programmable gate array (FPGA) based devices, smart phones,personal digital assistants (PDAs), body-mounted or inserted computers,embedded device style computers, application-specific integrated circuit(ASIC) based devices.

Job: any set of data and/or instructions that is designed to: (i) beperformed by a “processor-based computing resource;” and (ii) besnapshotted and restarted (on the same computing resource or on adifferent computing resource) based on the snapshot; the foregoingdefinition of the word “job” may include some data sets which areconventionally considered as a group of multiple jobs, or as a portionof a single job; examples of jobs include the following: (i)simulations; (ii) matrix factorizations; (iii) parameter estimations;and (iv) optimizations.

Job fragments: any portion of a “job” that results from jobfragmentation; multiple job fragments may be combined to form a “largerjob fragment”; a single “job fragment” may be sub-divided to generatemultiple “smaller job fragments.”

Energy consideration: any energy related consideration, or factor, orimperative, that is affected by the distribution and/or size of jobsfragments among, and/or between, a set of processor-based computingresources of a supercomputer.

Processor-based computing resources: computing resources that aredesigned primarily to process data, rather than designed primarily tosave data, store data and/or provide other computer relatedfunctionality; additionally, a processor-based computing resource havesufficient capacity with respect to “job fragments,” such that theprocessor-based computing resource is susceptible to being meaningfullydefragmented.

The programs described herein are identified based upon the applicationfor which they are implemented in a specific embodiment of theinvention. However, it should be appreciated that any particular programnomenclature herein is used merely for convenience, and thus theinvention should not be limited to use solely in any specificapplication identified and/or implied by such nomenclature.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

What is claimed is:
 1. A method comprising: receiving, by job predictingmachine logic, a plurality of input calendar entries from calendar(s) ofa set of user(s) of a supercomputer, with the plurality of inputcalendar entries including expected run times for jobs included in acalendar(s) of a set of user(s); computing, by the job predictingmachine logic, a first cost approximation associated with running afirst job from a plurality of jobs on a supercomputer, with thecomputation of the first cost approximation being performed under anassumption that no defragmentation is performed prior to running thefirst job, wherein the computation of the first cost approximation isbased, at least in part, upon the plurality of input calendar entriesand power costs associated with running the first job without thedefragmentation; computing, by the job predicting machine logic, asecond cost approximation associated with running the first job on thesupercomputer, with the computation of the second cost approximationbeing performed under an assumption that defragmentation of a firstpartition of the supercomputer is performed prior to running the firstjob, wherein the computation of the second cost approximation is based,at least in part, upon the plurality of input calendar entries and powercosts associated with the defragmentation and with running the first jobsubsequent to the defragmentation of the first partition; and oncondition that the first cost approximation is greater than the secondcost approximation, performing defragmentation of the first partition;wherein the first partition is a partition large enough to run the firstjob.
 2. The method of claim 1 further comprising: subsequent toperforming the defragmentation of the first partition, performing thefirst job on the supercomputer.
 3. (canceled)
 4. (canceled)
 5. Themethod of claim 1 further comprising: computing an expected time for aneed for machine defragmentation, with the first expected time beingbased, at least in part, on a projected unavailability, due to themachine fragmentation; computing a delay cost incurred for expecteddelay of the first job based, at least in part, on the expected time forthe need for machine defragmentation; and computing a maximum expectedruntime interval based upon the following: (i) an assumption that thesupercomputer is in a defragmented state with free partitions Pn ofvarious sizes because defragmentation is performed prior to the expectedtime for the need for machine defragmentation, and (ii) a projectedsubmission of the plurality of jobs prior to the expected time for theneed for machine defragmentation; wherein if the maximum expectedruntime interval goes beyond the expected time for the need for machinedefragmentation, then the maximum expected runtime interval is decreasedso that the maximum expected runtime results in an interval thatcoincides with the expected time for the need for machinedefragmentation.
 6. The method of claim 5 wherein: the computation ofthe first cost approximation is based, at least in part, on a cost ofpower required for the defragmentation; and the computation of the firstcost approximation is further based, at least in part, upon a costsavings realized by an assumption that the free partitions of varioussizes are powered down during the maximum expected runtime interval. 7.A computer program product comprising a computer readable storage mediumhaving stored thereon: first program instructions programmed to receive,by job predicting machine logic, a plurality of input calendar entriesfrom calendar(s) of a set of user(s) of a supercomputer, with theplurality of input calendar entries including expected run times forjobs included in a calendar(s) of a set of user(s); second programinstructions programmed to compute, by job predicting machine logic, afirst cost approximation associated with running a first job from aplurality of jobs on a supercomputer, with the computation of the firstcost approximation being performed under an assumption that nodefragmentation is performed prior to running the first job, wherein thecomputation of the first cost approximation is based, at least in part,upon the plurality of input calendar entries and power costs associatedwith running the first job without the defragmentation; third programinstructions programmed to compute, by the job predicting machine logic,a second cost approximation associated with running the first job on thesupercomputer, with the computation of the second cost approximationbeing performed under an assumption that defragmentation of a firstpartition of the supercomputer is performed prior to running the firstjob, wherein the computation of the second cost approximation is based,at least in part, upon the plurality of input calendar entries and powercosts associated with the defragmentation and with running the first jobsubsequent to the defragmentation of the first partition; and fourthprogram instructions programmed to on condition that the first costapproximation is greater than the second cost approximation, performdefragmentation of the first partition; wherein: the first partition isa partition large enough to run the first job.
 8. The product of claim 7wherein the medium has further stored thereon: fifth programinstructions programmed to subsequent to performing the defragmentationof the first partition, perform the first job on the supercomputer. 9.(canceled)
 10. (canceled)
 11. The product of claim 7 wherein the mediumhas further stored thereon: fifth program instructions programmed tocompute an expected time for a need for machine defragmentation, withthe first expected time being based, at least in part, on a projectedunavailability, due to the machine fragmentation; sixth programinstructions programmed to compute a delay cost incurred for expecteddelay of the first job based, at least in part, on the expected time forthe need for machine defragmentation; and seventh program instructionsprogrammed to compute a maximum expected runtime interval based upon thefollowing: (i) an assumption that the supercomputer is in a defragmentedstate with free partitions Pn of various sizes because defragmentationis performed prior to the expected time for the need for machinedefragmentation, and (ii) a projected submission of the plurality ofjobs prior to the expected time for the need for machinedefragmentation; wherein if the maximum expected runtime interval goesbeyond the expected time for the need for machine defragmentation, thenthe maximum expected runtime interval is decreased so that the maximumexpected runtime results in an interval that coincides with the expectedtime for the need for machine defragmentation.
 12. The product of claim11 wherein: the second program instructions are further programmed tocompute the first cost approximation based, at least in part, on a costof power required for defragmentation; and the second programinstructions are further programmed to compute the first costapproximation further based, at least in part, upon a cost savingsrealized by an assumption that the free partitions of various sizes arepowered down during the maximum expected runtime interval.
 13. Acomputer system comprising: a processor(s) set; and a computer readablestorage medium; wherein: the processor set is structured, located,connected and/or programmed to run program instructions stored on thecomputer readable storage medium; and the program instructions include:first program instructions programmed to receive, by job predictingmachine logic, a plurality of input calendar entries from calendar(s) ofa set of user(s) of a supercomputer, with the plurality of inputcalendar entries including expected run times for jobs included in acalendar(s) of a set of user(s); second program instructions programmedto compute, by job predicting machine logic, a first cost approximationassociated with running a first job from a plurality of jobs on asupercomputer, with the computation of the first cost approximationbeing performed under an assumption that no defragmentation is performedprior to running the first job, wherein the computation of the firstcost approximation is based, at least in part, upon the plurality ofinput calendar entries and power costs associated with running the firstjob without the defragmentation, third program instructions programmedto compute, by the job predicting machine logic, a second costapproximation associated with running the first job on thesupercomputer, with the computation of the second cost approximationbeing performed under an assumption that defragmentation of a firstpartition of the supercomputer is performed prior to running the firstjob, wherein the computation of the second cost approximation is based,at least in part, upon the plurality of input calendar entries and powercosts associated with the defragmentation and with running the first jobsubsequent to the defragmentation of the first partition, and fourthprogram instructions programmed to on condition that the first costapproximation is greater than the second cost approximation, performdefragmentation of the first partition; wherein: the first partition isa partition large enough to run the first job.
 14. The system of claim13 wherein the medium has further stored thereon: fifth programinstructions programmed to subsequent to performing the defragmentationof the first partition, perform the first job on the supercomputer. 15.(canceled)
 16. (canceled)
 17. The system of claim 13 wherein the mediumhas further stored thereon: fifth program instructions programmed tocompute an expected time for a need for machine defragmentation, withthe first expected time being based, at least in part, on a projectedunavailability, due to the machine fragmentation; sixth programinstructions programmed to compute a delay cost incurred for expecteddelay of the first job based, at least in part, on the expected time forthe need for machine defragmentation; and seventh program instructionsprogrammed to compute a maximum expected runtime interval based upon thefollowing: (i) an assumption that the supercomputer is in a defragmentedstate with free partitions Pn of various sizes because defragmentationis performed prior to the expected time for the need for machinedefragmentation, and (ii) a projected submission of the plurality ofjobs prior to the expected time for the need for machinedefragmentation; wherein if the maximum expected runtime interval goesbeyond the expected time for the need for machine defragmentation, thenthe maximum expected runtime interval is decreased so that the maximumexpected runtime results in an interval that coincides with the expectedtime for the need for machine defragmentation.
 18. The system of claim17 wherein: the second program instructions are further programmed tocompute the first cost approximation based, at least in part, on a costof power required for the defragmentation; and the second programinstructions are further programmed to compute the first costapproximation further based, at least in part, upon a cost savingsrealized by an assumption that the free partitions of various sizes arepowered down during the maximum expected runtime interval.